<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            margin: 0;
            padding-bottom: 3rem;
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
        }
        #form{
            background-color: rgba(0, 0, 0, 0.15);
            padding:0.25rem;
            position: fixed;
            bottom:0;
            left:0;
            right:0;
            display: flex;
            height:3rem;
            box-sizing: border-box;
            backdrop-filter: blur(10px);
        }
        #input{
            border:none;
            padding:0 1rem;
            flex-grow: 1;
            border-radius: 2rem;
            margin: 0.25rem;
        }
        #input:focus{
            outline: none;
        }
        #form>button{
            background: #333;
            border:none;
            padding:0 1rem;
            margin:0.25rem;
            border-radius: 3px;
            outline: none;
            color:#fff;
        }
        #messages{
            list-style: none;
            padding: 0;
        }
        #messages>li{
            padding: 0.5rem 1rem;
        }
        #messages>li:nth-child(odd) {
            background:#efefef;
        }
    </style>
</head>
<body>
    <ul id="messages"></ul>
    <form action="" id="form">
        <input type="text" autocomplete="off" id="input">
        <button>send</button>
    </form>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        var socket=io("http://localhost:3000")
        socket.on('connect',()=>{
            console.log('连接成功了')
        })
        socket.on('disconnect',(reason)=>{
            console.log(`断开连接了:${reason}`)
            if(reason==='io server disconnect'){
                // 重新连接
                socket.connect()
                console.log("正在重新连接...")
            }
        })
        socket.on('connect_error',(error)=>{
            console.log('连接失败了:'+error)
        })
        var messages=document.getElementById('messages')
        var form=document.getElementById('form')
        var input=document.getElementById('input')
        form.addEventListener('submit',function(e){
            e.preventDefault()
            if(input.value){
                socket.emit('chat message',input.value)
                input.value=''
            }
        })
        socket.on('chat message',data=>{
            const message=document.createElement('li')
            message.innerHTML=data
            messages.appendChild(message)
        })
    </script>
</body>
</html>